<template>
    <el-row>
        <el-col :span="24">
            <el-form :model="form" label-width="120px">
                <el-tabs tab-position="left" >
                    <el-tab-pane label="运行配置" lazy>
                        <switchs label="允许注册" v-model="form.sdk.account.reg_status" help="是否允许用户进行注册"/>
                        <!-- 运行配置项 -->
                        <inputs label="省市区表" v-model="form.run_conf.city_excel" help="高德省市区的excel表位置，若不存在的话，请在高德服务器上进行下载 https://lbs.amap.com/api/webservice/download (城市编码表，解压后上传其中的xlsx文件)"/>
                        <inputs label="7Z程序" v-model="form.run_conf.p7z_path" help="7Z程序的所在位置，用于部分文件的压缩/解压缩 下载地址：https://www.7-zip.org/download.html"/>
                        <inputs label="日志目录位置" v-model="form.run_conf.log_path" help="sqlite日志所在位置，程序日志会按日切分为单独sqlite文件，存储到 log_path 下，空表示不记录日志(因此处的日志存储到了sqlte文件中，所以会存储尽可能丰富的日志信息，然后检测到旧日志存在(昨天的日志)的话会自动压缩为7z文件)"/>
                    </el-tab-pane>
                    <el-tab-pane label="基础配置">
                        <el-tabs tab-position="left" >
                            <el-tab-pane label="微信小程序">
                                <switchs label="开启状态" v-model="form.sdk.wechat_app.status" help="是否允许使用小程序code登录"/>
                                <inputs label="AppId" v-if="form.sdk.wechat_app.status == 1" v-model="form.sdk.wechat_app.app_id" help="微信小程序的appid"/>
                                <inputs label="AppSecret" v-if="form.sdk.wechat_app.status == 1" v-model="form.sdk.wechat_app.app_secret" help="微信小程序的appsecret"/>
                            </el-tab-pane>
                            <el-tab-pane label="JWT配置">
                                <inputs label="JWT密钥" v-model="form.jwt.key" help="JWT密钥用于生成和验证token，修改后将导致所有用户的token失效"/>
                                <inputs label="JWT签名" v-model="form.jwt.sign" help="JWT签名用于生成和验证token，修改后将导致所有用户的token失效"/>
                                <inputs label="过期时间" v-model="form.jwt.key_expired" help="JWT的过期时间配置，0-永不过期" numeric append="秒"/>
                            </el-tab-pane>
                        </el-tabs>
                    </el-tab-pane>
                    <el-tab-pane label="支付配置" lazy>
                        <switchs label="余额支付" v-model="form.sdk.account.status" help="是否允许用户选用余额支付"/>
                        <div class="append_box" v-if="form.sdk.account.status == 1">
                            <switchs label="允许充值" v-model="form.sdk.account.recharge" help="是否允许往余额中进行手动充值"/>
                            <inputs label="充值档位" v-if="form.sdk.account.recharge == 1" v-model="form.sdk.account.recharge_level" help="充值档位 每行表示一个档位，使用换行分割 到账金额使用:分割，如1:2表示支付1元到账2元 -:2表示自定义金额,进位为1:2 PS:如果某档位仅允许充限定的次数，可以在最后追加:<限制次数>;即  <充值金额>:<到账金额>[:<限制次数>]" textarea/>
                            <switchs label="允许提现" v-model="form.sdk.account.withdraw" help="是否允许从余额中进行提现"/>
                            <inputs label="提现档位" v-if="form.sdk.account.withdraw == 1" v-model="form.sdk.account.withdraw_level" help="和充值档位相同 <提现金额>:<到账金额>[:<提现次数>]" textarea/>
                        </div>
                        <switchs label="微信支付" v-model="form.sdk.wechat_pay.status" help="是否允许用户选用微信支付"/>
                        <div class="append_box" v-if="form.sdk.wechat_pay.status == 1"></div>
                        <switchs label="支付宝支付" v-model="form.sdk.alipay.status" help="是否允许用户选用支付宝支付"/>
                    </el-tab-pane>
                    <el-tab-pane label="上传配置" lazy>
                        <!-- 上传配置项 -->
                        <inputs label="上传目录" v-model="form.upload.path" append="检测" @append-click="checkDir" help="文件会上传到该目录下的 yyyy-mm-dd/<文件名> 下"/>
                        <inputs label="文件大小" v-model="form.upload.size" append="MB" help="上传文件大小限制，若使用nginx等软件代理的话，需要调整对应软件，使之支持该大小的文件上传(0表示不限制)" numeric/>
                        <switchs label="登录限制" v-model="form.upload.is_login" help="开启后只有登录用户才可上传文件"/>
                        <inputs label="显示域名" v-model="form.upload.domain" help="文件的显示域名，用于图片显示 空表示使用本程序读取，即：/system/configure/file?path=/xxxxx"/>
                    </el-tab-pane>
                </el-tabs>
                <el-form-item>
                    <el-button type="primary" @click="saveData" v-hasPerm="['sys:configure:save']">保存</el-button>
                </el-form-item>
            </el-form>
        </el-col>
    </el-row>
</template>
<script>
import inputs from '@/components/form/item.input.vue'
import switchs from '@/components/form/item.switch.vue'
import form from './form.json'
export default {
    data(){
        return {
            form: form,
        }
    },
    methods: {
        // 基础信息获取
        initData(){
            var that = this
            that.$http("/admin/system/configure/get").then(res=>{
                // 单位转换【B转换为MB】
                res.upload.size = (res.upload.size/1024/1024).toFixed(2)
                that.form = res
            })
        },
        // 检测目录是否存在
        checkDir(){
            var that = this
            that.$http.post("/admin/system/configure/check_dir",{dir: that.form.upload.path}).then(()=>{
                that.$func.success("检测通过")
            })
        },
        // 保存数据配置项
        saveData(){
            var that = this
            var post_data = JSON.parse(JSON.stringify(that.form))
            post_data.upload.size = parseInt(post_data.upload.size*1024*1024)
            that.$http.post("/admin/system/configure/save", post_data).then(res=>{
                that.$message.success("保存成功")
            }).catch(err=>{
                that.$message.error(err.message)
            })
            
        },
    },
    mounted(){
        this.initData()
    },
    components: {
        inputs,
        switchs,
    },
}
</script>
<style lang="scss" scoped>
.append_box{
    border: 1px solid #e2e2e2;
    border-radius: 8px;
    margin-bottom: 10px;
}
</style>